package com.ldq.imooc.basics.socket;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/**
 * @Author : 李道泉
 * @Description : 基于UDP的登陆
 * @Date : 2018/4/23 17:13
 * @Modified by :
 */
public class UDPServer {

    public static void main(String[] args) throws IOException {

        /**
         * @Author : 李道泉
         * @Description : 接收客户端数据
         * @Date 2018/4/23 17:37
         * @Modified by :
         */
        //1、创建DatagramSocket，指定端口号
        DatagramSocket socket = new DatagramSocket(8888);
        //2、创建数据报，用于接收客户端发送数据
        byte[] data = new byte[1024];
        DatagramPacket packet = new DatagramPacket(data, data.length);
        //3、接收客户端数据
        System.out.println("服务器已启动，滴~~滴滴");
        socket.receive(packet);
        //4、读取数据
        String info = new String(data, 0, packet.getLength());
        System.out.println("SERVER：来自客户端001的消息：" + info);

        /**
         * @Author : 李道泉
         * @Description : 响应客户端数据
         * @Date 2018/4/23 17:37
         * @Modified by :
         */
        //1、定义客户端的地址、端口、响应数据
        InetAddress address = packet.getAddress();
        int port = packet.getPort();
        byte[] resp = "敢问是段友".getBytes();
        //2、创建数据报，包含响应信息
        DatagramPacket respPacket = new DatagramPacket(resp, resp.length, address, port);
        //3、响应客户端
        socket.send(respPacket);
        //4、关闭资源
        socket.close();
    }
}
